A one-time programmable (OTP) memory device is a non-volatile memory device that can be programmed (e.g., written to), but cannot be erased. Consequently, after an OTP memory device has initially been programmed, the data content of the memory device cannot be erased or altered. As a non-volatile memory device, OTP memory devices retain data even when power is not supplied to the memory device. Because of these characteristics, system designers often select OTP memory devices for storing data that the system designer desires to protect from being altered and/or discovered by a user, particularly a hacker. For example, embedded OTP memories are often used for storing identifying data (e.g., electrical serial numbers (ESNs), passwords, etc.) that uniquely identify and associate a user with a particular computer chip or integrated circuit (IC), such as an application specific integrated circuit (ASIC), or a System-on-a-Chip (SoC).
A typical OTP memory device is made up of an array of memory cells. Each memory cell includes some type of physically alterable element, such as a fuse, that is physically altered when subjected to a high voltage during the initial programming of the memory cell. After the initial programming, the physically altered element (e.g., blown fuse) prevents the memory cell from being written to or erased. This prevents a user from altering the data contents of the memory device after the device has been initially programmed. Furthermore, if proper access control logic is implemented, the data contents of an embedded OTP memory should not be available on the output pins of the chip, and consequently, a user should not be able to gain access to the data contents via normal operation of the chip.
However, the data contents of an OTP memory device are susceptible to discovery by a sophisticated user via several methods. First, because of the physical alteration of the programming element (e.g., the fuse) during the initial programming of the memory device, the data contents of the memory device may be physically discoverable with the aid of a microscope. Furthermore, various other probes (e.g., an x-ray probe, an electron beam probe, etc.) may be utilized to discover the data contents of an OTP memory device, particularly during power-up or power-down sequences when the electrical characteristics of the OTP memory cells change from their initial state to their programmed state, or vice versa.
A multi-time programmable (MTP) memory device is made up of an array of memory cells, each memory cell having what is referred to as a “floating gate.” An electrically alterable, non-volatile memory device (e.g., a flash memory), which can be electrically programmed, is a particular type of MTP memory device. FIG. 1 illustrates a schematic diagram of a prior art electrically alterable, non-volatile memory cell 10 with a floating gate 12. The floating gate 12 is a polysilicon charge-storing element in the structure of the memory cell 10 that is isolated from the control gate 14, above, and the N-Channel device, below, by an insulating material (e.g., field oxide 16). The logical state of the memory cell 10 is determined by the charge on the floating gate 12, which is moved into and out of the floating gate 12 via the tunnel oxide 18 by physical mechanisms, such as a Fowler-Nordheim tunneling mechanism.
Unlike OTP memory devices, the data contents of an MTP memory device cannot be determined by physically inspecting the MTP memory device. Moreover, unlike OTP memory devices, x-ray and electron beam probes are not effective for discovering the data contents of MTP memory devices. However, MTP memory devices are erasable and re-writeable. Consequently, they are generally not well suited for storing secure data that a system designer desires to protect from alteration.